# -*- coding：utf-8 -*-
"""
@Time:2024-08-1716:45
@Auth:泛彼泊舟
@File:6、多态.py
@IDE:PyCharm
@模块功能：xxx
"""
"""
鸭子类型：如果有一只鸟，走起来像鸭子，叫起来像鸭子，吃饭睡觉像鸭子，那么这只鸟可以成为鸭子
- 忽略对象实际的形态，而是以胜任的方式去充当该类型
- 表示同一个操作作用于不同的对象上，可以有不同的解释
"""
# 多态是在继承的基础上才会有具体的表现
class Animal:
    def speak(self):
        pass

class Cat(Animal):
    def speak(self):
        print("喵喵的")

class Dog(Animal):
    def speak(self):
        print("汪汪汪")


# 定义一个函数调用通过不同的对象，speak方法
def animal_speak(animal):
    # 当对象不一样的时候调用的方法也会不一样
    animal.speak()

# 创建狗和猫对象
cat = Cat()
dog = Dog()
animal_speak(cat)
animal_speak(dog)